package 正则表达式;

///判断手机号
public class text2 {
    public static void main(String[] args) {
        //心得：
//拿着一个正确的数据，从左到右依次去写。
//13112345678
//分成三部分：
//第一部分： 1 表示手机号码只能以1开头
//第二部分： [3-9] 表示手机号码第二位只能是3·9之间的 1
//第三部分： \\d{9}或[0-9] 表示任意数字可以出现9次，也只能出现9次
        String a = "1[3-9][0-9]{9}";
        String b = "1[3-9]\\d{9}";//以上一句代码同效
        System.out.println("12345678912".matches(a));
        System.out.println("13345678912".matches(a));
        System.out.println("133456789122".matches(a));
        System.out.println("1334567891a".matches(a));
        System.out.println("1334567891".matches(a));
        System.out.println("23345678911".matches(a));
        System.out.println("-----------------------");
        System.out.println("12345678912".matches(b));
        System.out.println("13345678912".matches(b));
        System.out.println("133456789122".matches(b));
        System.out.println("1334567891a".matches(b));
        System.out.println("1334567891".matches(b));
        System.out.println("23345678911".matches(b));

        System.out.println("-----------------------");
        //?  :  表示？前一个字符只能出现一次或0次
        String c = "1[3-9][0-9]{9}-?";//-? : 表示“-“号只能出现一次或零次
        System.out.println("13345678912".matches(c));
        System.out.println("13345678912-".matches(c));
        System.out.println("13345678912--".matches(c));

//        String d0 = "^(?:(?:\+|00)86)?1[3-9]\d{9}$";//这是用插件默认生成的，需要做一点修改
        String d = "(?:(?:\\+|00)86)?1[3-9]\\d{9}";//需要将^和$去掉
        System.out.println("13345678912".matches(d));

    }
}
